package com.atguigu.springbootdemo.mapper;


import com.atguigu.springbootdemo.bean.Employee;
import com.atguigu.springbootdemo.bean.Region;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Created by Smexy on 2022/11/29
 *
 *      Mapper：  Dao
 *
 *      接口如何创建对象?
 *        之前:   提供一个实现类，new一个实现类的对象！
 *        Mybatis:  使用动态代理的技术，帮你自动创建一个接口的实例！
 *
 *     @Mapper:
 *          1.给你自己看，表明这是一个Dao(Mapper)
 *          2.容器扫描到后，会为这个注解标注的类创建一个单例对象
 *          3.容器扫描到后，明白了要使用Mybatis提供的动态代理技术，实例化对象
 *                  EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
 */
@Mapper
//@DS("220730")  //DataSource  标注在类上，代表这个类的所有方法都查询220730数据源
public interface EmployeeMapper
{
    Employee getEmployeeById(Integer id);

    void insertEmployee(Employee e);

    void updateEmployee(Employee e);

    void deleteEmployeeById(Integer id);

    List<Employee> getAll();

    @DS("gmall") //这个方法查询 gmall数据源，优先级高
    List<Region> getAllRegion();
}
